1. Field of the Invention
The present invention relates to a bar code reader for and a bar code reading method of reading bar codes in which identifying bars are disposed at two ends and at the center and 2-block data characters are interposed between the respective identifying bars such as a UPC code, an EAN code and a JAN code, and to a computer readable medium for storing a program for such a reading process, and more particularly to a reader and a reading method capable of reproducing demodulated data with respect to the whole bar codes by synthesizing plural pieces of demodulated data obtained by partially reading the bar codes.
2. Description of the Related Art
In recent years, it has been generalized that commercial goods are managed by bar codes as typified by a POS system in distribution industries etc. For example, in the POS system in a shop, pieces of information on classifications and sales prices etc of the goods are coded in a format of the bar code and printed on the goods. The bar code is read at the check-out counter, and a payment is made based on the read information. Then, the number of sold goods is counted in real time, and a result of count serves for an inventory management and a stocking management.
The above bar code is roughly classified into a fixed length code such as a JAN code, a UPC code and an EAN code, and into a variable length second code. This fixed length code has a start guard bar (SGB) added to a left end thereof, a center bar (CB) inserted in a middle portion thereof and an end guard bar (EGB) added to the right end thereof. A left data block consisting of six or four data characters is provided between the start guard bar and the center bar, and a right data block consisting of six or four data characters is provided between the center bar and the end guard bar. This pattern of these guard bars and the center bar are predetermined by the specification, and therefore a bar code reader is capable of detecting these guard bars and center bar.
Further, the bar code reader is capable of reading the data character (a coded numerical values or symbolic minimum unit) of the bar code on the basis of the guard bars and the center bar. There are three reading methods, i.e., a continuous reading method, a block reading method and a division reading method. The continuous reading method is such that when detecting the two guard bars and the center bar by one bar code scanning process, the data characters interposed between the two guard bars are recognized and demodulated as a bar code. Further, the block reading method is that only the block of the data characters is recognized as a bar code though the block is interposed by only one guard and the center bar, and, after separately demodulating the two blocks, demodulated data of these respective blocks are synthesized (integrated), thereby reproducing the data modulated into the single bar code. Moreover, according to the division reading method, even a data character string contiguous to the single guard bar at the minimum or the center bar is recognized as a bar code, and fragments of the demodulated data of those data characters that have been separately read are synthesized, thereby reproducing the demodulated data corresponding to the whole single bar code.
In the above-described block reading method, only the data characters interposed between the guard bars and the center bar of the bar code are conceived as valid data and extracted from ambient data, and hence data noises based on portions excluding the bar code are efficiently eliminated. Hence, there is less of a possibility of misreading the block data, and consequently a bar code demodulation processing time may be short. Accordingly, an in-store marking bar code labeled in a retail store on a fresh foods, etc., with difficulty of source marking, has hitherto been treated as one in which the data demodulation is completed only when the same demodulated data is reproduced at least twice on the basis of the continuous reading method or the block reading method in order to prevent the misreading.
The in-store marking is, however, carried out by sticking a paper label printed with the bar code on a surface of the goods or a wrapping paper of the goods, and therefore it might happen that the bar code distorts due to corrugations of the goods or of the wrapping paper of the goods when reading the bar code. Accordingly, there is only a small possibility in which the block data can be demodulated by one bar code scanning process. As a result, it takes a long time until two or more reproducing processes of the same demodulated data by the block reading are finished.
To obviate this problem, it can be considered to deal with the data demodulation as being completed immediately when the demodulated data corresponding to the whole bar code is reproduced once by the block reading process. According to such a method of obviating the problem, however, it is impossible to eliminate the misreading attributed to the reverse reading of the right block as will hereinafter be explained.
That is, in the above-described fixed length code, as shown in FIG. 14, the center bar (CB) is constructed of five white/black/white/black/white modules, while the end guard bar (EGB) is constructed of three black/white/black modules. Therefore, as illustrated in FIG. 14, there is only one module of an end margin, in which case when a scan beam starts scanning the bar code from the center bar (CB) without passing through over a sixth character (C6) of the left block (or alternatively when the scan of the bar code is ended at the center bar (CB)), a pattern of the end margin (white) plus the end guard bar (black/white/black) plus the seventh module (white) of the twelfth character, becomes identical with a pattern of the center bar (white/black/white/black/white), and it follows that a pattern of the second module through fourth module (black/white/black) of the center bar becomes the same as the pattern of the end guard bar (black/white/black). Besides, as in the case shown in FIG. 15 or 16, if the right block is constructed of only the data characters (E-0, E-1, E-5) in which the seventh module solely constitutes the white bar, and even when reading the code reversely by shifting a boundary between the data characters to between the sixth module and the seventh module, it follows that a data character string for one block is apparently constituted (however, E-0 is replaced with E-5). Accordingly, there might be a possibility in which the demodulating device is incapable of distinguishing a direction in which the scan has been done based on an external configuration of the bar width data, and therefore demodulates a bar width data set produced by the scan effected in a certain direction as bar width data produced by the scan effected in the direction opposite to the above scan direction. In this case, as explained above, E-0 is replaced with E-5, and hence it follows that the data demodulated becomes absolutely different from the data that must have been originally demodulated. This is a misreading attributed to the reverse reading of the right block. Note that the center bar (CB) might be also replaced with the guard bar (SGB) in the left block. Unlike the right block composed of the data characters of even-numbered parities, however, the data characters of odd-numbered parities are contained in the left block, and besides an arrangement of the even-numbered parity data characters and the odd-numbered parity data characters is restricted to a predetermined arrangement by a protocol. Consequently, the misreading caused by the reverse reading does not occur.